home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2007 December / PCWKCD1207B.iso / Blogowanie poza sfera / Flock 0.9.1.3 stable / flock-0.9.1.3.en-US.win32.exe / flock / chrome / browser.jar / content / browser / preferences / content.js < prev    next >
Text File  |  2006-08-23  |  8KB  |  242 lines

  1. //@line 40 "/cygdrive/K/tinderbuild/src/flock/mozilla/browser/components/preferences/content.js"
  2.  
  3. var gContentPane = {
  4.  
  5.   /**
  6.    * Initializes the fonts dropdowns displayed in this pane.
  7.    */
  8.   init: function ()
  9.   {
  10.     this._rebuildFonts();
  11.     var menulist = document.getElementById("defaultFont");
  12.     if (menulist.selectedIndex == -1) {
  13.       menulist.insertItemAt(0, "", "", "");
  14.       menulist.selectedIndex = 0;
  15.     }
  16.   },
  17.  
  18.   // UTILITY FUNCTIONS
  19.  
  20.   /**
  21.    * Utility function to enable/disable the button specified by aButtonID based
  22.    * on the value of the Boolean preference specified by aPreferenceID.
  23.    */  
  24.   updateButtons: function (aButtonID, aPreferenceID)
  25.   {
  26.     var button = document.getElementById(aButtonID);
  27.     var preference = document.getElementById(aPreferenceID);
  28.     button.disabled = preference.value != true;
  29.     return undefined;
  30.   },
  31.  
  32.   /**
  33.    * The exceptions types which may be passed to this._showExceptions().
  34.    */
  35.   _exceptionsParams: {
  36.     popup:   { blockVisible: false, sessionVisible: false, allowVisible: true, prefilledHost: "", permissionType: "popup"   },
  37.     image:   { blockVisible: true,  sessionVisible: false, allowVisible: true, prefilledHost: "", permissionType: "image"   }
  38.   },
  39.  
  40.   /**
  41.    * Displays the exceptions dialog of the given type, where types map onto the
  42.    * the fields in this._exceptionsParams.
  43.    */  
  44.   _showExceptions: function (aPermissionType)
  45.   {
  46.     var bundlePreferences = document.getElementById("bundlePreferences");
  47.     var params = this._exceptionsParams[aPermissionType];
  48.     params.windowTitle = bundlePreferences.getString(aPermissionType + "permissionstitle");
  49.     params.introText = bundlePreferences.getString(aPermissionType + "permissionstext");
  50.     document.documentElement.openWindow("Browser:Permissions",
  51.                                         "chrome://browser/content/preferences/permissions.xul",
  52.                                         "", params);
  53.   },
  54.  
  55.   // BEGIN UI CODE
  56.  
  57.   /*
  58.    * Preferences:
  59.    *
  60.    * dom.disable_open_during_load
  61.    * - true if popups are blocked by default, false otherwise
  62.    * permissions.default.image
  63.    * - an integer:
  64.    *     1   all images should be loaded,
  65.    *     2   no images should be loaded,
  66.    *     3   load only images from the site on which the current page resides
  67.    *         (i.e., if viewing foo.example.com, foo.example.com/foo.jpg and
  68.    *         bar.foo.example.com/bar.jpg load but example.com/quux.jpg does not)
  69.    * javascript.enabled
  70.    * - true if JavaScript is enabled, false otherwise
  71.    */
  72.  
  73.   // POP-UPS
  74.  
  75.   /**
  76.    * Displays the popup exceptions dialog where specific site popup preferences
  77.    * can be set.
  78.    */
  79.   showPopupExceptions: function ()
  80.   {
  81.     this._showExceptions("popup");
  82.   },
  83.  
  84.   // IMAGES
  85.  
  86.   /**
  87.    * Converts the value of the permissions.default.image preference into a
  88.    * Boolean value for use in determining the state of the "load images"
  89.    * checkbox, returning true if images should be loaded and false otherwise.
  90.    */
  91.   readLoadImages: function ()
  92.   {
  93.     var pref = document.getElementById("permissions.default.image");
  94.     return (pref.value == 1 || pref.value == 3);
  95.   },
  96.  
  97.   /**
  98.    * Returns the "load images" preference value which maps to the state of the
  99.    * preferences UI.
  100.    */
  101.   writeLoadImages: function ()
  102.   { 
  103.     return (document.getElementById("loadImages").checked) ? 1 : 2;
  104.   },
  105.  
  106.   /**
  107.    * Displays image exception preferences for which websites can and cannot
  108.    * load images.
  109.    */
  110.   showImageExceptions: function ()
  111.   {
  112.     this._showExceptions("image");
  113.   },
  114.  
  115.   // JAVASCRIPT
  116.  
  117.   /**
  118.    * Displays the advanced JavaScript preferences for enabling or disabling
  119.    * various annoying behaviors.
  120.    */
  121.   showAdvancedJS: function ()
  122.   {
  123.     document.documentElement.openSubDialog("chrome://browser/content/preferences/advanced-scripts.xul",
  124.                                            "", null);  
  125.   },
  126.  
  127.   // FONTS
  128.  
  129.   /**
  130.    * Populates the default font list in UI.
  131.    */
  132.   _rebuildFonts: function ()
  133.   {
  134.     var langGroupPref = document.getElementById("font.language.group");
  135.     this._selectDefaultLanguageGroup(langGroupPref.value,
  136.                                      this._readDefaultFontTypeForLanguage(langGroupPref.value) == "serif");
  137.   },
  138.  
  139.   /**
  140.    * 
  141.    */
  142.   _selectDefaultLanguageGroup: function (aLanguageGroup, aIsSerif)
  143.   {
  144.     const kFontNameFmtSerif         = "font.name.serif.%LANG%";
  145.     const kFontNameFmtSansSerif     = "font.name.sans-serif.%LANG%";
  146.     const kFontNameListFmtSerif     = "font.name-list.serif.%LANG%";
  147.     const kFontNameListFmtSansSerif = "font.name-list.sans-serif.%LANG%";
  148.     const kFontSizeFmtVariable      = "font.size.variable.%LANG%";
  149.  
  150.     var prefs = [{ format   : aIsSerif ? kFontNameFmtSerif : kFontNameFmtSansSerif,
  151.                    type     : "unichar",
  152.                    element  : "defaultFont",
  153.                    fonttype : aIsSerif ? "serif" : "sans-serif" },
  154.                  { format   : aIsSerif ? kFontNameListFmtSerif : kFontNameListFmtSansSerif,
  155.                    type     : "unichar",
  156.                    element  : null,
  157.                    fonttype : aIsSerif ? "serif" : "sans-serif" },
  158.                  { format   : kFontSizeFmtVariable,
  159.                    type     : "int",
  160.                    element  : "defaultFontSize",
  161.                    fonttype : null }];
  162.     var preferences = document.getElementById("contentPreferences");
  163.     for (var i = 0; i < prefs.length; ++i) {
  164.       var preference = document.getElementById(prefs[i].format.replace(/%LANG%/, aLanguageGroup));
  165.       if (!preference) {
  166.         preference = document.createElement("preference");
  167.         var name = prefs[i].format.replace(/%LANG%/, aLanguageGroup);
  168.         preference.id = name;
  169.         preference.setAttribute("name", name);
  170.         preference.setAttribute("type", prefs[i].type);
  171.         preferences.appendChild(preference);
  172.       }
  173.  
  174.       if (!prefs[i].element)
  175.         continue;
  176.  
  177.       var element = document.getElementById(prefs[i].element);
  178.       if (element) {
  179.         element.setAttribute("preference", preference.id);
  180.  
  181.         if (prefs[i].fonttype)
  182.           FontBuilder.buildFontList(aLanguageGroup, prefs[i].fonttype, element);
  183.  
  184.         preference.setElementValue(element);
  185.       }
  186.     }
  187.   },
  188.  
  189.   /**
  190.    * Returns the type of the current default font for the language denoted by
  191.    * aLanguageGroup.
  192.    */
  193.   _readDefaultFontTypeForLanguage: function (aLanguageGroup)
  194.   {
  195.     const kDefaultFontType = "font.default.%LANG%";
  196.     var defaultFontTypePref = kDefaultFontType.replace(/%LANG%/, aLanguageGroup);
  197.     var preference = document.getElementById(defaultFontTypePref);
  198.     if (!preference) {
  199.       preference = document.createElement("preference");
  200.       preference.id = defaultFontTypePref;
  201.       preference.setAttribute("name", defaultFontTypePref);
  202.       preference.setAttribute("type", "string");
  203.       preference.setAttribute("onchange", "gContentPane._rebuildFonts();");
  204.       document.getElementById("contentPreferences").appendChild(preference);
  205.     }
  206.     return preference.value;
  207.   },
  208.  
  209.   /**
  210.    * Displays the fonts dialog, where web page font names and sizes can be
  211.    * configured.
  212.    */  
  213.   configureFonts: function ()
  214.   {
  215.     document.documentElement.openSubDialog("chrome://browser/content/preferences/fonts.xul",
  216.                                            "", null);
  217.   },
  218.  
  219.   /**
  220.    * Displays the colors dialog, where default web page/link/etc. colors can be
  221.    * configured.
  222.    */
  223.   configureColors: function ()
  224.   {
  225.     document.documentElement.openSubDialog("chrome://browser/content/preferences/colors.xul",
  226.                                            "", null);  
  227.   },
  228.  
  229.   // FILE TYPES
  230.  
  231.   /**
  232.    * Displays the file type configuration dialog.
  233.    */
  234.   configureFileTypes: function ()
  235.   {
  236.     document.documentElement.openWindow("Preferences:DownloadActions",
  237.                                         "chrome://browser/content/preferences/downloadactions.xul",
  238.                                         "", null);
  239.   }
  240.  
  241. };
  242.